package com.sq.partner.manager.util.excel;

import org.apache.poi.ss.usermodel.*;

import java.util.Calendar;
import java.util.Date;

public class POICellWrapper {
 private Cell cell = null;
    public Cell getCell() {
        return cell;
    }
   
    public POICellWrapper(Cell cell){
        this.cell = cell;
    }
    //TODO 传入Row 和Column 号，直接设置往类型和内容。
    //columnIndex (0-based)
    public POICellWrapper(Row row, int columnIndex){
        this.cell = row.createCell(columnIndex);
    }
    //设置单元格 - 样式
    public POICellWrapper setCellStyle(CellStyle cellStyle) {
        cell.setCellStyle(cellStyle);
        return this;
    }
    //设置单元格 - Cell 格式类型 (Cell.CELL_TYPE_ERROR、Cell.CELL_TYPE_STRING)
    public POICellWrapper setCellType(int cellType) {
        cell.setCellType(cellType);
        return this;
    }
    //设置单元格 - 公式
    public POICellWrapper setFormula(String formula) {
        cell.setCellType(Cell. CELL_TYPE_FORMULA);
        cell.setCellFormula(formula);
        return this;
    }
    //设置单元格 - 富文本字符串
    //RichTextString 可以给字符串单独设置字体样式
    public POICellWrapper setRichTextStringValue(String stringValue) {
        CreationHelper factory = cell.getRow().getSheet().getWorkbook().getCreationHelper();
        RichTextString str = factory.createRichTextString(stringValue);
        cell.setCellValue(str);
        return this;
    }
    //设置单元格 - 富文本
    //RichTextString 可以给字符串单独设置字体样式
    public POICellWrapper setRichTextString(RichTextString richTextString) {
        cell.setCellValue(richTextString);
        return this;
    }
    //设置单元格 - 内容(double)
    public POICellWrapper setDoubleValue(double doubleValue) {
        cell.setCellValue(doubleValue);
        return this;
    }
    //设置单元格 - 内容(Date)
    public POICellWrapper setDateValue(Date dateValue) {
        cell.setCellValue(dateValue);
        return this;
    }
    //设置单元格 - 内容(Calendar)
    public POICellWrapper setCalendarValue(Calendar calendarValue) {
        cell.setCellValue(calendarValue);
        return this;
    }
    //设置单元格 - 内容(String)
    public POICellWrapper setStringValue(String stringValue) {
        cell.setCellValue(stringValue);
        return this;
    }
    //设置单元格 - 内容(boolean)
    public POICellWrapper setBooleanValue(boolean booleanValue) {
        cell.setCellValue(booleanValue);
        return this;
    }
	
}
